package com.yss.reportworld.domain.kettle;

import java.util.List;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yss.common.core.annotation.EasyExcel;
import com.yss.common.core.annotation.ExcelValid;
import com.yss.common.core.utils.easyexecl.IntegerConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * ETL采集作业对象 rw_db_etl_job
 *
 * @author yss
 * @date 2023-07-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("rw_db_etl_job")
public class EtlJob extends Model<EtlJob> {
    public static final String SHEET_NAME = "作业列表";
    /**
     * 技术主键
     */
    @ExcelIgnore
    @TableId("ID")
    private String id;

    /**
     * 作业名称
     */
    @ExcelProperty("作业名称")
    @TableField("JOB_NAME")
    @ExcelValid(message = "【作业列表】【作业名称】不能为空")
    private String jobName;

    /**
     * 模板ID;与ETL_TEMPLATE表的ID
     */
    @ExcelIgnore
    @TableField("TEMPLATE_ID")
    private String templateId;

    /**
     * 作业名称
     */
    @ExcelProperty("模板名称")
    @TableField(exist = false)
    @ExcelValid(message = "【作业列表】【模板名称】不能为空")
    private String templateName;


    /**
     * 分层类型
     */
    @ExcelIgnore
    @TableField("LEVEL_ID")
    private String levelId;

    /**
     * 分层类型
     */
    @ExcelProperty("分层类型")
    @TableField(exist = false)
    @ExcelValid(message = "【作业列表】【分层类型】不能为空")
    private String levelName;

    /**
     * 采集频率;逗号分隔
     */
    @ExcelIgnore
    @TableField("JOB_FREQUENCY")
    private String jobFrequency;

    /**
     * 目标资源表ID;绑定ETL_RESOURCE表ID
     * 目表资源数据源和英文名 拼接
     */
    @ExcelProperty("目标资源")
    @TableField("TARGET_RESOURCE_ID")
    @ExcelValid(message = "【作业列表】【目标资源】不能为空")
    private String targetResourceId;
    /**
     * 采集作业与资源关联关系表中获取拼接
     */
    @ExcelProperty("来源资源")
    @TableField(exist = false)
    @ExcelValid(message = "【作业列表】【来源资源】不能为空")
    private String sourceResourceId;
    /**
     * 备注
     */
    @ExcelProperty("备注")
    @TableField("REMARK")
    private String remark;
    /**
     * 状态 1 启用 0 禁用
     */
    @ExcelProperty(value = "状态", converter = IntegerConverter.class)
    @EasyExcel(readConverterExp = "0=无效,1=正常")
    @TableField("STATUS")
    @ExcelValid(message = "【作业列表】【状态】不能为空")
    private Integer status;

    // 来源资源集合
    @ExcelIgnore
    @TableField(exist = false)
    private List<EtlResource> listSourceResource;

    // 目表资源集合
    @ExcelIgnore
    @TableField(exist = false)
    private List<EtlResource> listTargetResource;
    /**
     * 数据编码
     */
    @ExcelIgnore
    @TableField("RW_DB_ID")
    private String rwDbId;
}
